FIXBASIC.TXT

	This document provides a method for fixing all the latest versions of
DISK BASIC and BASICA to work on the IBM PCjr without the need of the
cartridge. This information is provided as PUBLIC DOMAIN information and is
authored by Jeffrey T. McKee.

	I am also hoping to provide a Technical Assistance BBS in Lewisburg
Tennessee shortly. It is my desire to provide all the PCjr users out there
with technical assistance and information on new products that become
available. And also to show that there is a place in the world for JUNIOR!!!

	The reason why jr will not access disk BASIC without a cartridge is
because of embedded code in the BIOS that looks for the BASIC cartridge when
the Function key setup routine is accessed. This routine can be by-passed by
changing the call (actually a far jump) to the initializing routine for
setting up the Function Key definitions. This Cartridge search code is
executed when a far call (jump) is made to address F600:4C79. This address
contains a call to the check routine. If this call is by-passed, the cartridge
search does not take place allowing access to DISK BASIC.

	I have found that by copying the BASIC(A).COM programs to another name
is great, if you do not have a cartridge or two already installed. I also
found that for each version of DISK BASIC, the address of this far call to
address F600:4C79 is located in a different place {for obvious reasons for
those of us who write programs} and can not be patched by a single script file
such as PATCHBAS.BAT. I found that the easiest and quickest {at the time} way
to perform this task was to use the "S" command in debug to find the reference
to the basic interpreter for the F600:4C79 call. The following is a step by
step procedure for revising DISK BASIC(A):

A>COPY BASICA.COM JRBASICA.COM	;COPY BASICA.COM TO A DIFFERENT NAME.

A>DEBUG JRBASICA.COM		;DEBUG THE VERSION TO BE USED

-R				;LOOK AT THE REGISTERS. BX AND CX CONTAIN
				;THE LENGTH
-S100LXXXX 79 4C		;IF BX > 0 XXXX=FFFF OTHERWISE XXXX=VALUE IN
XXXX:YYYY			;THE CX REGISTER. YYYY IS THE OFFSET OF THE
				;4C79 VALUE.

-EYYYY 7C			;THIS CHANGES THE 79 TO 7C FOR BYPASSING
-W				;WRITE THE REVISED FILE BACK TO THE DISK
-Q				;EXIT BACK TO DOS
A>JRBASICA			;AND RUN THE NEW PROGRAM. IT SHOULD NOW WORK
				;WITHOUT THE CARTRIDGE

	This same procedure can be used for BASIC.COM if you want to fix it as
well. Also remember that the A> prompt in the example is dynamic. It is up to
you to keep track of where DEBUG.COM and BASIC(A).COM are. Happy Computing.

				       --Jeff McKee
